#include <bits/stdc++.h>

using namespace std;

//简单模拟做
class Solution1 {
    void trim(std::string &s){  
        if (s.empty())   
        {  
            return ;  
        }  
        s.erase(0,s.find_first_not_of(" "));  
        s.erase(s.find_last_not_of(" ") + 1);   
    }  
public:
    bool isNumber(string s) {
        trim(s);
        if(s.empty()){
            return false;
        }
        int pos=s.find('e');
        
        if(pos==string::npos) return xt(s);
        else
            return xt(s.substr(0,pos))&&at(s.substr(pos+1));
    }
    //x..e..a

    bool xt(string s){
        bool res=false;
        int len=s.size(),p=0;
        //底数可以有小数，数字，正负，其余均为不合法
        for(int i=0;i<len;i++){
            if(s[i]=='+'||s[i]=='-'){
                if(i!=0) return false;
            }else if(s[i]=='.'){
                if(p) return false;
                p=1;
            }else if(s[i]<'0'||s[i]>'9'){
                return false;
            }else{
                res=true;
            }
        }
        return res;
    }
    bool at(string s){
        int len=s.size();
        bool res=false;
        //指数可以有正负，数字，其他均为不合法
        for(int i=0;i<len;i++){
            if(s[i]=='+'||s[i]=='-'){
                if(i!=0) return false;
            }else if(s[i]<'0'||s[i]>'9'){
                return false;
            }else{
                res=true;
            }
        }
        return res;
    }
};

/*
题解用编译原理的DFA做？
WTF，我忘了啥事DFA了。。。
补知识ing。。。
*/
class Solution {
public:
    bool isNumber(string s) {



        
    }
};



int main(){




    return 0;
}